package com.efounder.utils;

/**
 * Created by will on 18-3-2.
 */

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class MyMathUtil {
    // 进行加法运算
    public static double add(double d1, double d2) {
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.add(b2).doubleValue();
    }

    // 进行减法运算
    public static double sub(double d1, double d2) {
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.subtract(b2).doubleValue();
    }

    // 进行乘法运算
    public static double mul(double d1, double d2) {
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.multiply(b2).doubleValue();
    }

    // 进行除法运算
    public static double div(double d1, double d2, int len) {
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    // 进行四舍五入操作
    public static double round(double d, int len) {
        BigDecimal b1 = new BigDecimal(d);
        BigDecimal b2 = new BigDecimal(1);
        // 任何一个数字除以1都是原数字
        // ROUND_HALF_UP是BigDecimal的一个常量，表示进行四舍五入的操作
        return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    // 进行四舍五入操作
    public static BigDecimal round2(double d, int len) {
        BigDecimal b1 = new BigDecimal(d);
        BigDecimal b2 = new BigDecimal(1);
        // 任何一个数字除以1都是原数字
        // ROUND_HALF_UP是BigDecimal的一个常量，表示进行四舍五入的操作
        return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP);
    }
    // 进行四舍五入操作
    public static BigDecimal round3(double d, int len) {
        BigDecimal bd = new BigDecimal(d);
        BigDecimal bigDecima = bd.setScale(len, BigDecimal.ROUND_HALF_UP);
        // ROUND_HALF_UP是BigDecimal的一个常量，表示进行四舍五入的操作
        return bigDecima;
    }

//	// 四舍五入（保留两位小数）
//	public static double roundOff(double price) {
//		BigDecimal b1 = new BigDecimal(price);
//		return b1.divide(b1, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
//	}

    // 测试
    public static void main(String[] args) {
//		System.out.println("加法运算："
//				+ MyMathUtil.round(MyMathUtil.add(10.345, 3.333), 1));
//		System.out.println("乘法运算："
//				+ MyMathUtil.round(MyMathUtil.mul(10.345, 3.333), 3));
//		System.out.println("除法运算：" + MyMathUtil.div(10.345, 3.333, 3));
//		System.out.println("减法运算："
//				+ MyMathUtil.round(MyMathUtil.sub(10.345, 3.333), 3));

//		System.out.println("减法运算："
//				+ MyMathUtil.round(1.0,0));
//
        CommonDecimalFormat df = new CommonDecimalFormat("0.00");
        String  totalString = df.format(1.0);
        System.out.println(totalString);

    }
}